import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

/**
 * @uml.dependency   supplier="CasillaCiudadFactory"
 */
public class Tablero  {
	
	public static List<RitmoInfeccion> ritmosInfeccion;
	public static RitmoInfeccion ritmoInfeccion;
	public static Integer nivelBrote;
	public static List<CasillaCiudad> centrosInvestigacion;
	public static List<Color> curasDescubiertas;
	public CasillaCiudad ciudadInicial;
	public static int maxCentrosInvestigacion;
	public static Map<Color,Integer> cubosEnfermedad;
	public static int indiceRitmoInfeccion;
	/** 
	 * @uml.property name="casillasCiudades"
	 * @uml.associationEnd multiplicity="(48 48)" ordering="true" inverse="tablero:CasillaCiudad"
	 */
	public static LinkedList<CasillaCiudad> casillasCiudades;
		
	public Tablero(Ciudad ciudadInicial){
		/*creo las casillas*/
		crearCasillas(ciudadInicial);
		//inicializo el resto de atributos de Tablero
		nivelBrote=0;
		maxCentrosInvestigacion=6;
		ritmosInfeccion=new LinkedList<RitmoInfeccion>();
		RitmoInfeccion[] ritmos= RitmoInfeccion.values();//guardo los RitmosInfeccion para recorrerlos
		for(RitmoInfeccion r: ritmos){
			ritmosInfeccion.add(r);
		}
		//inicializo ritmoInfeccion con el primero de la lista ritmosInfeccion
		indiceRitmoInfeccion=0;
		ritmoInfeccion=ritmosInfeccion.get(indiceRitmoInfeccion);
		centrosInvestigacion = new LinkedList<CasillaCiudad>();
		centrosInvestigacion.add(this.ciudadInicial);
	
		curasDescubiertas=new LinkedList<Color>();

		Color[]enfermedad=Color.values();
		cubosEnfermedad=new HashMap<Color,Integer>();
		for(Color c:enfermedad){
			cubosEnfermedad.put(c,24);	
		}
	}
	
	private void crearCasillas(Ciudad ciudadInicial){
		
		casillasCiudades=new LinkedList<CasillaCiudad>();
		Ciudad[] ciudades= Ciudad.values();//guardo los nombres del enumerado ciudad para recorrerlos
		
		int i=0;
		for(Ciudad c: ciudades){
			casillasCiudades.add(i,new CasillaCiudad(c));
			i++;
		}
		//asigno en tablero todas las casillas ciudad creadas
		
		//creo lo adyacentes
		LinkedList<CasillaCiudad> ady = new LinkedList<CasillaCiudad>();
		
		//Adyacentes con WASHINGTON
		ady.add(casillasCiudades.get(1));
		ady.add(casillasCiudades.get(3));
		ady.add(casillasCiudades.get(5));
		ady.add(casillasCiudades.get(8));
		casillasCiudades.get(0).getAdyacentes().addAll(ady);//adyacentes con washington
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(0));
		casillasCiudades.get(1).getAdyacentes().addAll(ady);//washington es ady atlanta
		casillasCiudades.get(3).getAdyacentes().addAll(ady);
		casillasCiudades.get(5).getAdyacentes().addAll(ady);
		casillasCiudades.get(8).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//Adyacentes ATLANTA
		ady.add(casillasCiudades.get(4));
		ady.add(casillasCiudades.get(8));
		casillasCiudades.get(1).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(1));
		casillasCiudades.get(4).getAdyacentes().addAll(ady);
		casillasCiudades.get(8).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//Adyacentes SAN FRANCISCO
		ady.add(casillasCiudades.get(4));
		ady.add(casillasCiudades.get(6));
		ady.add(casillasCiudades.get(42));
		ady.add(casillasCiudades.get(46));
		casillasCiudades.get(2).getAdyacentes().addAll(ady);//adyacentes con washington
		ady.removeAll(ady);		
		
		ady.add(casillasCiudades.get(2));
		casillasCiudades.get(4).getAdyacentes().addAll(ady);//washington es ady atlanta
		casillasCiudades.get(6).getAdyacentes().addAll(ady);
		casillasCiudades.get(42).getAdyacentes().addAll(ady);
		casillasCiudades.get(46).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//Adyacentes TORONTO
		ady.add(casillasCiudades.get(4));
		ady.add(casillasCiudades.get(5));
		casillasCiudades.get(3).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(3));
		casillasCiudades.get(4).getAdyacentes().addAll(ady);
		casillasCiudades.get(5).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//Adyacentes con CHICAGO
		ady.add(casillasCiudades.get(6));
		ady.add(casillasCiudades.get(7));
		casillasCiudades.get(4).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(4));
		casillasCiudades.get(6).getAdyacentes().addAll(ady);
		casillasCiudades.get(7).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//Adyacentes NY
		ady.add(casillasCiudades.get(18));
		ady.add(casillasCiudades.get(19));
		casillasCiudades.get(5).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(5));
		casillasCiudades.get(18).getAdyacentes().addAll(ady);
		casillasCiudades.get(19).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
	
		//adyacentes LA
		ady.add(casillasCiudades.get(7));
		ady.add(casillasCiudades.get(47));
		casillasCiudades.get(6).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(6));
		casillasCiudades.get(7).getAdyacentes().addAll(ady);
		casillasCiudades.get(47).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//adyacentes MEXICO DC
		ady.add(casillasCiudades.get(8));
		ady.add(casillasCiudades.get(9));
		ady.add(casillasCiudades.get(10));
		casillasCiudades.get(7).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(7));
		casillasCiudades.get(8).getAdyacentes().addAll(ady);
		casillasCiudades.get(9).getAdyacentes().addAll(ady);
		casillasCiudades.get(10).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//Adyacentes MIAMI
		ady.add(casillasCiudades.get(9));
		casillasCiudades.get(8).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(8));
		casillasCiudades.get(9).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY BOGOTA
		
		ady.add(casillasCiudades.get(10));
		ady.add(casillasCiudades.get(11));
		ady.add(casillasCiudades.get(12));
		casillasCiudades.get(9).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(9));
		casillasCiudades.get(10).getAdyacentes().addAll(ady);
		casillasCiudades.get(11).getAdyacentes().addAll(ady);
		casillasCiudades.get(12).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY LIMA
		ady.add(casillasCiudades.get(13));
		casillasCiudades.get(10).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(10));
		casillasCiudades.get(13).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY SAO_PAULO
		ady.add(casillasCiudades.get(12));
		ady.add(casillasCiudades.get(13));
		ady.add(casillasCiudades.get(14));
		casillasCiudades.get(11).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(11));
		casillasCiudades.get(12).getAdyacentes().addAll(ady);
		casillasCiudades.get(13).getAdyacentes().addAll(ady);
		casillasCiudades.get(14).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY LAGOS
		ady.add(casillasCiudades.get(15));
		ady.add(casillasCiudades.get(17));
		casillasCiudades.get(14).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(14));
		casillasCiudades.get(15).getAdyacentes().addAll(ady);
		casillasCiudades.get(17).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY KINSASA
		ady.add(casillasCiudades.get(16));
		ady.add(casillasCiudades.get(17));
		casillasCiudades.get(15).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(15));
		casillasCiudades.get(16).getAdyacentes().addAll(ady);
		casillasCiudades.get(17).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY JOHANNESBURGO
		ady.add(casillasCiudades.get(17));
		casillasCiudades.get(16).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(16));
		casillasCiudades.get(17).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY JARTUM
		ady.add(casillasCiudades.get(25));
		casillasCiudades.get(17).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(17));
		casillasCiudades.get(25).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY MADRID
		ady.add(casillasCiudades.get(19));
		ady.add(casillasCiudades.get(20));
		ady.add(casillasCiudades.get(24));
		casillasCiudades.get(18).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(18));
		casillasCiudades.get(19).getAdyacentes().addAll(ady);
		casillasCiudades.get(20).getAdyacentes().addAll(ady);
		casillasCiudades.get(24).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY LONDRES
		ady.add(casillasCiudades.get(21));
		ady.add(casillasCiudades.get(25));
		casillasCiudades.get(19).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(19));
		casillasCiudades.get(21).getAdyacentes().addAll(ady);
		casillasCiudades.get(25).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY PARIS
		ady.add(casillasCiudades.get(21));
		ady.add(casillasCiudades.get(23));
		ady.add(casillasCiudades.get(24));
		casillasCiudades.get(20).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(20));
		casillasCiudades.get(21).getAdyacentes().addAll(ady);
		casillasCiudades.get(23).getAdyacentes().addAll(ady);
		casillasCiudades.get(24).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY ESSEN
		ady.add(casillasCiudades.get(22));
		ady.add(casillasCiudades.get(23));
		casillasCiudades.get(21).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(21));
		casillasCiudades.get(22).getAdyacentes().addAll(ady);
		casillasCiudades.get(23).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY STPETER
		ady.add(casillasCiudades.get(26));
		ady.add(casillasCiudades.get(45));
		casillasCiudades.get(22).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(22));
		casillasCiudades.get(26).getAdyacentes().addAll(ady);
		casillasCiudades.get(45).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY MILAN
		ady.add(casillasCiudades.get(26));		
		casillasCiudades.get(23).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(23));
		casillasCiudades.get(26).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY ARGEL
		ady.add(casillasCiudades.get(25));
		ady.add(casillasCiudades.get(26));
		casillasCiudades.get(24).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(24));
		casillasCiudades.get(25).getAdyacentes().addAll(ady);
		casillasCiudades.get(26).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY EL CAIRO
		ady.add(casillasCiudades.get(26));
		ady.add(casillasCiudades.get(27));
		ady.add(casillasCiudades.get(28));
		casillasCiudades.get(25).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(25));
		casillasCiudades.get(26).getAdyacentes().addAll(ady);
		casillasCiudades.get(27).getAdyacentes().addAll(ady);
		casillasCiudades.get(28).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY EST
		ady.add(casillasCiudades.get(28));
		ady.add(casillasCiudades.get(45));
		casillasCiudades.get(26).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(26));
		casillasCiudades.get(28).getAdyacentes().addAll(ady);
		casillasCiudades.get(45).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		
		//ADY RYAD
		ady.add(casillasCiudades.get(28));
		ady.add(casillasCiudades.get(31));
		casillasCiudades.get(27).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(27));
		casillasCiudades.get(28).getAdyacentes().addAll(ady);
		casillasCiudades.get(31).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY BAGDAG
		ady.add(casillasCiudades.get(29));
		ady.add(casillasCiudades.get(31));
		casillasCiudades.get(28).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(28));
		casillasCiudades.get(29).getAdyacentes().addAll(ady);
		casillasCiudades.get(31).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY TEHERAN
		ady.add(casillasCiudades.get(30));
		ady.add(casillasCiudades.get(31));
		ady.add(casillasCiudades.get(45));
		casillasCiudades.get(29).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(29));
		casillasCiudades.get(30).getAdyacentes().addAll(ady);
		casillasCiudades.get(31).getAdyacentes().addAll(ady);
		casillasCiudades.get(45).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY DELHI
		ady.add(casillasCiudades.get(31));
		ady.add(casillasCiudades.get(33));
		ady.add(casillasCiudades.get(34));
		casillasCiudades.get(30).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(30));
		casillasCiudades.get(31).getAdyacentes().addAll(ady);
		casillasCiudades.get(33).getAdyacentes().addAll(ady);
		casillasCiudades.get(34).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY KARACHI
		ady.add(casillasCiudades.get(32));		
		casillasCiudades.get(31).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(31));
		casillasCiudades.get(32).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY BOMBAY
		ady.add(casillasCiudades.get(33));		
		casillasCiudades.get(32).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(32));
		casillasCiudades.get(33).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY CHENNAI
		ady.add(casillasCiudades.get(34));
		ady.add(casillasCiudades.get(35));
		ady.add(casillasCiudades.get(36));
		casillasCiudades.get(33).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(33));
		casillasCiudades.get(34).getAdyacentes().addAll(ady);
		casillasCiudades.get(35).getAdyacentes().addAll(ady);
		casillasCiudades.get(36).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY CALCUTA
		ady.add(casillasCiudades.get(35));
		ady.add(casillasCiudades.get(38));
		casillasCiudades.get(34).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(34));
		casillasCiudades.get(35).getAdyacentes().addAll(ady);
		casillasCiudades.get(38).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY BANKOG
		ady.add(casillasCiudades.get(36));
		ady.add(casillasCiudades.get(37));
		ady.add(casillasCiudades.get(38));
		casillasCiudades.get(35).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(35));
		casillasCiudades.get(36).getAdyacentes().addAll(ady);
		casillasCiudades.get(37).getAdyacentes().addAll(ady);
		casillasCiudades.get(38).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY YAKARTA
		ady.add(casillasCiudades.get(37));
		ady.add(casillasCiudades.get(47));
		casillasCiudades.get(36).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(36));
		casillasCiudades.get(37).getAdyacentes().addAll(ady);
		casillasCiudades.get(47).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY HO CHI MIN
		ady.add(casillasCiudades.get(38));
		ady.add(casillasCiudades.get(46));
		casillasCiudades.get(37).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(37));
		casillasCiudades.get(38).getAdyacentes().addAll(ady);
		casillasCiudades.get(46).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY HONG KONG
		ady.add(casillasCiudades.get(39));
		ady.add(casillasCiudades.get(44));
		ady.add(casillasCiudades.get(46));
		casillasCiudades.get(38).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(38));
		casillasCiudades.get(39).getAdyacentes().addAll(ady);
		casillasCiudades.get(44).getAdyacentes().addAll(ady);
		casillasCiudades.get(46).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY SHANGAI
		ady.add(casillasCiudades.get(40));
		ady.add(casillasCiudades.get(41));
		ady.add(casillasCiudades.get(42));
		ady.add(casillasCiudades.get(44));
		casillasCiudades.get(39).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(39));
		casillasCiudades.get(40).getAdyacentes().addAll(ady);
		casillasCiudades.get(41).getAdyacentes().addAll(ady);
		casillasCiudades.get(42).getAdyacentes().addAll(ady);
		casillasCiudades.get(44).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY PEKIN
		ady.add(casillasCiudades.get(41));		
		casillasCiudades.get(40).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(40));
		casillasCiudades.get(41).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY SEUL
		ady.add(casillasCiudades.get(42));		
		casillasCiudades.get(41).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(41));
		casillasCiudades.get(42).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY TOKYO
		ady.add(casillasCiudades.get(43));		
		casillasCiudades.get(42).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(42));
		casillasCiudades.get(43).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY OSAKA
		ady.add(casillasCiudades.get(44));		
		casillasCiudades.get(43).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(43));
		casillasCiudades.get(44).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY TAIPEI
		ady.add(casillasCiudades.get(46));		
		casillasCiudades.get(44).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(44));
		casillasCiudades.get(46).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		//ADY MANILA
		ady.add(casillasCiudades.get(47));		
		casillasCiudades.get(46).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		ady.add(casillasCiudades.get(46));
		casillasCiudades.get(47).getAdyacentes().addAll(ady);
		ady.removeAll(ady);
		
		this.ciudadInicial=casillasCiudades.get(ciudadInicial.getCodigo());
	}

	public void imprimirCiudadesInfectadas(){
		System.out.println("********CIUDADES INFECTADAS*****************");
		System.out.println("");
		for(CasillaCiudad c:casillasCiudades){
			if(c.infectada()){
					System.out.println("Ciudad: "+c.getCiudad());
					c.imprimirInfecciones();
					System.out.println("");
			}
		}
		System.out.println("*****************************************");
	}
	
	public static void imprimirCiudadesAdyacentes(CasillaCiudad casillaciudad){
		System.out.println("Ciudades adyacentes a "+casillaciudad.getCiudad()+": ");
		System.out.println("*****************************************");
			for(int j=0;j<(casillasCiudades.get(casillaciudad.getCiudad().getCodigo()).getAdyacentes().size());j++){		
				LinkedList<CasillaCiudad> ady= (LinkedList<CasillaCiudad>) casillasCiudades.get(casillaciudad.getCiudad().getCodigo()).getAdyacentes();
				System.out.println(j+") Ciudad: "+ady.get(j).getCiudad());		
			}
		System.out.println("*****************************************");
	}
	
	public static void imprimirCiudades(){
		System.out.println("*****************************************");
		for(int i=0;i<casillasCiudades.size();i++){
			System.out.println(i+") Ciudad: "+((CasillaCiudad) casillasCiudades.get(i)).getCiudad()); 
		}
		System.out.println("*****************************************");
	}
	
	public void imprimirTodasLasCiudades(){
		for(int i=0;i<casillasCiudades.size();i++){
			System.out.println(i+") Ciudad: "+" "+((CasillaCiudad) casillasCiudades.get(i)).getCiudad()); 
			imprimirCiudadesAdyacentes(casillasCiudades.get(i));		
			}
		System.out.println("*****************************************");
	}

	public static void imprimirCentrosInvestigacion(){
		System.out.println("*******CENTROS DE INVESTIGACION**********");
		for(int i=0;i<centrosInvestigacion.size();i++){
			System.out.println(i+") Ciudad: "+((CasillaCiudad) centrosInvestigacion.get(i)).getCiudad()); 
		}
		if(centrosInvestigacion.size()==0) System.out.println("No hay ninguna ciudad con centros de investigacion");
		System.out.println("*****************************************");
	}
	
	public static void imprimirCubosRestantes(){
		System.out.println("*****************************************");
		for(Color c:Color.values()){
			System.out.println("CUBOS RESTANTES COLOR "+c+" = "+Tablero.cubosEnfermedad.get(c));
		}
		System.out.println("*****************************************");
	}
	
	public static void imprimirCurasDescubiertas(){
		System.out.println("*****************************************");
		System.out.println("CURAS DESCUBIERTAS: ");
		for(Color c:curasDescubiertas){
			System.out.println("CURA COLOR "+c+" DESCUBIERTA");
		}
		System.out.println("*****************************************");
	}
	
	public static void aumentarNivelBrote(){
		nivelBrote++;
		System.out.println("NUMERO DE BROTES AUMENTA A "+nivelBrote);
		if (nivelBrote==8) {
			Pandemic.finJugar(0,null);
		}
	}
	
	public static void curaDescubierta(Color color) {
		curasDescubiertas.add(color);
		if (curasDescubiertas.size()==Color.values().length) Pandemic.finJugar(3,null);
	}
	
	public static void aumentarRitmosInfeccion() {
		if(indiceRitmoInfeccion<(ritmosInfeccion.size()-1)) {
			indiceRitmoInfeccion++;
			ritmoInfeccion=ritmosInfeccion.get(indiceRitmoInfeccion);
			System.out.println("RITMO DE INFECCION AUMENTA A: "+ritmoInfeccion.getMultiplicador());
		}
	}
	
}
